home *** CD-ROM | disk | FTP | other *** search
/ Classic Computer Fun Set / Colorforms Classic - Computer Fun Set.iso / colorfrm.mst < prev    next >
Encoding:
Text File  |  1996-08-01  |  9.7 KB  |  317 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. ''$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL DEST$        ''Default destination directory.
  25. GLOBAL DESTBCKGRND$ ''background sub dir.
  26. GLOBAL DESTMODULES$ ''module sub dir.
  27. GLOBAL DESTTEXTURE$ ''texture sub dir.
  28. GLOBAL DESTUSERS$   ''users sub dir.
  29. GLOBAL OPTCUR$      ''Option selection from option dialog.
  30.  
  31. DECLARE SUB Install
  32. DECLARE SUB InstallCD
  33. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  34.  
  35.  
  36. INIT:
  37.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  38.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  39.  
  40.     SetBitmap CUIDLL$, LOGO
  41.     SetTitle "Colorforms By Gryphon Software"
  42.  
  43.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  44.     IF szInf$ = "" THEN
  45.         szInf$ = GetSymbolValue("STF_CWDDIR") + "COLORFRM.INF"
  46.     END IF
  47.     ReadInfFile szInf$
  48.  
  49.     OPTCUR$ = "1"
  50.     DEST$ = "C:\COLORFRM"
  51.  
  52. '$IFDEF DEBUG
  53.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  54.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  55.     IF IsDriveValid(WinDrive$) = 0 THEN
  56.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  57.         GOTO QUIT
  58.     END IF
  59. '$ENDIF ''DEBUG
  60.  
  61.  
  62. WELCOME:
  63.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  64.     IF sz$ = "CONTINUE" THEN
  65.         UIPop 1
  66.     ELSE
  67.         GOSUB ASKQUIT
  68.         GOTO WELCOME
  69.     END IF
  70.  
  71.  
  72. OPTION:
  73.     SetSymbolValue "RadioDefault", OPTCUR$
  74. OPTL1:
  75.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  76.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  77.  
  78.     IF sz$ = "CONTINUE" THEN
  79.         UIPop(1)
  80.     ELSEIF sz$ = "REACTIVATE" THEN
  81.         GOTO OPTL1
  82.     ELSE
  83.         GOSUB ASKQUIT
  84.         GOTO OPTION
  85.     END IF
  86.  
  87.  
  88. GETPATH:
  89. IF OPTCUR$ = "1" THEN
  90.     DEST$ = "C:\COLORFRM\USERS"
  91.     SetSymbolValue "EditTextIn", DEST$
  92. ELSE
  93.     SetSymbolValue "EditTextIn", DEST$
  94. END IF
  95.     SetSymbolValue "EditFocus", "END"
  96. GETPATHL1:
  97.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  98.     DEST$ = GetSymbolValue("EditTextOut")
  99.  
  100.     IF sz$ = "CONTINUE" THEN
  101.         IF IsDirWritable(DEST$) = 0 THEN
  102.             GOSUB BADPATH
  103.             GOTO GETPATHL1
  104.         END IF
  105.         UIPop 1
  106.     ELSEIF sz$ = "REACTIVATE" THEN
  107.         GOTO GETPATHL1
  108.     ELSEIF sz$ = "BACK" THEN
  109.         UIPop 1
  110.         GOTO WELCOME
  111.     ELSE
  112.         GOSUB ASKQUIT
  113.         GOTO GETPATH
  114.     END IF
  115.  
  116. IF OPTCUR$ = "1" THEN
  117.     InstallCD
  118. ELSE
  119.     Install
  120. END IF
  121.  
  122.  
  123.  
  124. QUIT:
  125.     ON ERROR GOTO ERRQUIT
  126.  
  127.     IF ERR = 0 THEN
  128.         dlg% = EXITSUCCESS
  129.     ELSEIF ERR = STFQUIT THEN
  130.         dlg% = EXITQUIT
  131.     ELSE
  132.         dlg% = EXITFAILURE
  133.     END IF
  134. QUITL1:
  135.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  136.     IF sz$ = "REACTIVATE" THEN
  137.         GOTO QUITL1
  138.     END IF
  139.     UIPop 1
  140.  
  141.     END
  142.  
  143. ERRQUIT:
  144.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  145.     END
  146.  
  147.  
  148.  
  149. BADPATH:
  150.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  151.     IF sz$ = "REACTIVATE" THEN
  152.         GOTO BADPATH
  153.     END IF
  154.     UIPop 1
  155.     RETURN
  156.  
  157.  
  158.  
  159. ASKQUIT:
  160.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  161.  
  162.     IF sz$ = "EXIT" THEN
  163.         UIPopAll
  164.         ERROR STFQUIT
  165.     ELSEIF sz$ = "REACTIVATE" THEN
  166.         GOTO ASKQUIT
  167.     ELSE
  168.         UIPop 1
  169.     END IF
  170.     RETURN
  171.  
  172.  
  173.  
  174. '**
  175. '** Purpose:
  176. '**     Builds the copy list and performs all installation operations.
  177. '** Arguments:
  178. '**     none.
  179. '** Returns:
  180. '**     none.
  181. '*************************************************************************
  182. SUB Install STATIC
  183.  
  184.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  185.     
  186.     DESTBCKGRND$ = DEST$ + "\backgrnd"
  187.     DESTMODULES$ = DEST$ + "\modules"
  188.     DESTTEXTURE$ = DEST$ + "\textures"
  189.     DESTUSERS$   = DEST$ + "\users"
  190.  
  191.     CreateDir DEST$, cmoNone
  192.     CreateDir DESTBCKGRND$, cmoNone
  193.     CreateDir DESTMODULES$, cmoNone
  194.     CreateDir DESTTEXTURE$, cmoNone
  195.     CreateDir DESTUSERS$, cmoNone
  196.  
  197. ''    OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  198. ''    WriteToLogFile ""
  199. ''    WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  200. ''    WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  201. ''    WriteToLogFile ""
  202. ''    WriteToLogFile "May have had to create the directory: " + DEST$
  203. ''    WriteToLogFile ""
  204.  
  205. ''    AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  206.     AddSectionFilesToCopyList "main", SrcDir$, DEST$
  207.     AddSectionFilesToCopyList "textures", SrcDir$, DESTTEXTURE$
  208.     AddSectionFilesToCopyList "modules", SrcDir$, DESTMODULES$
  209.     AddSectionFilesToCopyList "backgrnd", SrcDir$, DESTBCKGRND$
  210. ''    AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  211.     CopyFilesInCopyList
  212.  
  213. ''    ini$ = MakePath(DEST$, "DEMO.INI")
  214. ''    CreateIniKeyValue "WIN.INI", "MSSetup Sample 1", "Option", OPTCUR$, cmoNone
  215. ''    CreateIniKeyValue ini$, "Section 1", "Key 1", "Value 1" , cmoNone
  216. ''    CreateIniKeyValue ini$, "Section 2", "Key 2", "Value 2" , cmoNone
  217. ''    CreateIniKeyValue ini$, "Section 3", "Key 3", "Value 3" , cmoNone
  218.     ini$ = MakePath(GetWindowsDir, "COLORFRM.INI")
  219.     CreateIniKeyValue ini$, "default", "Location", DESTUSERS$ , cmoOverwrite
  220.  
  221.     CreateProgmanGroup "Colorforms", "", cmoNone
  222.     ShowProgmanGroup  "Colorforms", 1, cmoNone
  223.     CreateProgmanItem "Colorforms", "Colorforms", MakePath(DEST$,"colorfrm.exe"), "", cmoOverwrite
  224.     CreateProgmanItem "Colorforms", "Read Me First", "notepad.exe "+MakePath(DEST$,"readme.txt"), "", cmoOverwrite
  225.     CreateProgmanItem "Colorforms", "Colorforms Manual CD-ROM", "write.exe "+MakePath(SrcDir$,"manual.wri"), "", cmoOverwrite
  226.  
  227.     AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  228.  
  229. ''    CloseLogFile
  230.  
  231. END SUB
  232.  
  233.  
  234. '**
  235. '** Purpose:
  236. '**     Builds the copy list and performs all installation operations.
  237. '** Arguments:
  238. '**     none.
  239. '** Returns:
  240. '**     none.
  241. '*************************************************************************
  242. SUB InstallCD STATIC
  243.  
  244.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  245.     
  246. ''    DESTBCKGRND$ = DEST$ + "\backgrnd"
  247. ''    DESTMODULES$ = DEST$ + "\modules"
  248. ''    DESTTEXTURE$ = DEST$ + "\textures"
  249. ''    DESTUSERS$   = DEST$ + "\users"
  250.  
  251.     CreateDir DEST$, cmoNone
  252. ''    CreateDir DESTBCKGRND$, cmoNone
  253. ''    CreateDir DESTMODULES$, cmoNone
  254. ''    CreateDir DESTTEXTURE$, cmoNone
  255. ''    CreateDir DESTUSERS$, cmoNone
  256.  
  257. ''    OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  258. ''    WriteToLogFile ""
  259. ''    WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  260. ''    WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  261. ''    WriteToLogFile ""
  262. ''    WriteToLogFile "May have had to create the directory: " + DEST$
  263. ''    WriteToLogFile ""
  264.  
  265.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  266. ''    AddSectionFilesToCopyList "main", SrcDir$, DEST$
  267. ''    AddSectionFilesToCopyList "textures", SrcDir$, DESTTEXTURE$
  268. ''    AddSectionFilesToCopyList "modules", SrcDir$, DESTMODULES$
  269. ''    AddSectionFilesToCopyList "backgrnd", SrcDir$, DESTBCKGRND$
  270. ''''    AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  271.     CopyFilesInCopyList
  272.  
  273.     ini$ = MakePath(GetWindowsDir, "COLORFRM.INI")
  274. ''    CreateIniKeyValue "WIN.INI", "MSSetup Sample 1 test", "Option", OPTCUR$, cmoNone
  275. ''    CreateIniKeyValue ini$, "Section 1", "Key 1", "Value 1" , cmoNone
  276. ''    CreateIniKeyValue ini$, "Section 2", "Key 2", "Value 2" , cmoNone
  277. ''    CreateIniKeyValue ini$, "Section 3", "Key 3", "Value 3" , cmoNone
  278.     CreateIniKeyValue ini$, "default", "Location", DEST$ , cmoOverwrite
  279.  
  280.     CreateProgmanGroup "Colorforms", "", cmoNone
  281.     ShowProgmanGroup  "Colorforms", 1, cmoNone
  282.     CreateProgmanItem "Colorforms", "Colorforms CD-ROM Required", MakePath(SrcDir$,"colorfrm.exe"), MakePath(DEST$,"colorfrm.ico"), cmoOverwrite
  283. ''    CreateProgmanItem "Colorforms", "Colorforms CD-ROM Required", MakePath(SrcDir$,"colorfrm.exe"), "", cmoOverwrite
  284.     CreateProgmanItem "Colorforms", "Read Me First CD-ROM", "notepad.exe "+MakePath(SrcDir$,"readme.txt"), "", cmoOverwrite
  285.     CreateProgmanItem "Colorforms", "Colorforms Manual CD-ROM", "write.exe "+MakePath(SrcDir$,"manual.wri"), "", cmoOverwrite
  286.  
  287.     AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  288.  
  289. ''    CloseLogFile
  290.  
  291. END SUB
  292.  
  293.  
  294.  
  295. '**
  296. '** Purpose:
  297. '**     Appends a file name to the end of a directory path,
  298. '**     inserting a backslash character as needed.
  299. '** Arguments:
  300. '**     szDir$  - full directory path (with optional ending "\")
  301. '**     szFile$ - filename to append to directory
  302. '** Returns:
  303. '**     Resulting fully qualified path name.
  304. '*************************************************************************
  305. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  306.     IF szDir$ = "" THEN
  307.         MakePath = szFile$
  308.     ELSEIF szFile$ = "" THEN
  309.         MakePath = szDir$
  310.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  311.         MakePath = szDir$ + szFile$
  312.     ELSE
  313.         MakePath = szDir$ + "\" + szFile$
  314.     END IF
  315. END FUNCTION
  316.  
  317.